package logic

import (
	"svvenus/conf"
	"svvenus/util/uttype"
	"svvenus/vpub/serve"
	"svvenus/zlog"
	"svvenus/znet/zpb"
)

func (player *Player) EquipAdd(cfgId int, sor zpb.RecSource) bool {
	cfg, ok := conf.MapEquip[cfgId]
	if !ok {
		zlog.Warn("EquipAdd error Id:", cfgId)
		return false
	}
	equip :=  NewEquip(cfg)
	equip.Pid = player.IdString()
	equip.IsNew = true
	equip.NeedSave = true
	player.EquipIds = append(player.EquipIds, equip.IdString())
	player.Equips[equip.IdString()] = equip

	serve.RecordAdd(zpb.RecType_rtPlayerEquipAdd, sor, player.IdString(), player.Name, uttype.IntToString(cfgId))
	return true
}

func (player *Player) EquipInfoList() *zpb.EquipInfoList {
	info := &zpb.EquipInfoList{}
	info.Equips = make(map[string]*zpb.EquipInfo)
	for k, v := range player.Equips {
		info.Equips[k] = v.EquipInfo()
	}
	return info
}

func (player *Player) PushEquipInfoList() {
	rsp := player.EquipInfoList()
	player.Send(zpb.EPid_GCEquipInfoPush, 0, rsp)
}
